package 数组算法;

import org.junit.Test;

public class maxProfit121 {
    /**
     * 每次都是记录当前的最小的是  然后在判断的最大的值的是多少
     * 也是里利用栈的数据结构 但是利用了额外空间复杂度
     * 直接遍历也是可以
     *
     * @param prices
     * @return
     */
    public int maxProfit(int[] prices) {
        if (prices.length <= 0) {
            return 0;
        }
        int max = 0;
        int min = prices[0];
        for (int i = 1; i < prices.length; i++) {
            min = Math.min(min, prices[i]);
            max = Math.max(max, prices[i] - min);
        }
        return max;
    }

    @Test
    public void test() {
        int i = maxProfit(new int[]{7, 1, 5, 3, 6, 4});
        System.out.println(i);
    }
}
